﻿package plugin.superstore.game
{
    import com.core.*;
    import com.sh.game.util.*;
    import flash.utils.*;
    import morn.core.components.*;
    import morn.core.handlers.*;
    import uiresource.store.*;
    import view.*;
    import view.mornExtends.*;
    import view.uilt.*;
    import vo.*;

    public class ShopList extends ShopListUI
    {
        private var timeDic:Dictionary;
        private var timer:int = 0;
        private var cfgStore:Object;
        private var curType:int = 0;
        private var curTab:int = 0;

        public function ShopList()
        {
            this.timeDic = new Dictionary();
            this.cfgStore = ConfigDictionary.data.storeMsg;
            this.initEvent();
            return;
        }// end function

        private function initEvent() : void
        {
            btn_next.clickHandler = new Handler(this.toNext);
            btn_pre.clickHandler = new Handler(this.toPre);
            return;
        }// end function

        private function toPre() : void
        {
            var _loc_1:* = list;
            var _loc_2:* = list.page - 1;
            _loc_1.page = _loc_2;
            txt_page.text = (list.page + 1) + "/" + list.totalPage;
            return;
        }// end function

        private function toNext() : void
        {
            var _loc_1:* = list;
            var _loc_2:* = list.page + 1;
            _loc_1.page = _loc_2;
            txt_page.text = (list.page + 1) + "/" + list.totalPage;
            return;
        }// end function

        public function show(param1:int, param2:int) : void
        {
            var _loc_3:Object = null;
            var _loc_8:Object = null;
            var _loc_9:Object = null;
            if (this.curType != param1)
            {
                list.page = 0;
            }
            else if (this.curTab != param2)
            {
                list.page = 0;
            }
            this.curType = param1;
            this.curTab = param2;
            for (_loc_3 in this.timeDic)
            {
                
                delete this.timeDic[_loc_3];
            }
            if (this.timer > 0)
            {
                clearInterval(this.timer);
                this.timer = 0;
            }
            var _loc_4:* = this.cfgStore[param1][param2];
            var _loc_5:* = ConfigDictionary.data.item;
            var _loc_6:* = UserData.getUserData("career");
            var _loc_7:Array = [];
            for each (_loc_8 in _loc_4)
            {
                
                _loc_9 = ItemObject.create(_loc_5[_loc_8.itemid]);
                if (_loc_9)
                {
                    if (_loc_9.career > 0)
                    {
                        if (_loc_9.career != _loc_6)
                        {
                            continue;
                        }
                    }
                }
                else
                {
                    continue;
                }
                _loc_7.push({storeMsg:_loc_8, itemMsg:_loc_9});
            }
            list.array = _loc_7;
            list.renderHandler = new Handler(this.listRender);
            txt_page.text = (list.page + 1) + "/" + list.totalPage;
            return;
        }// end function

        private function listRender(param1:Component, param2:int) : void
        {
            var _loc_3:Object = null;
            var _loc_4:Object = null;
            var _loc_5:Object = null;
            var _loc_6:FlashItem = null;
            var _loc_7:Label = null;
            var _loc_8:Button = null;
            var _loc_9:Label = null;
            var _loc_10:String = null;
            var _loc_11:List = null;
            var _loc_12:Array = null;
            var _loc_13:List = null;
            var _loc_14:Array = null;
            var _loc_15:int = 0;
            var _loc_16:int = 0;
            var _loc_17:Array = null;
            var _loc_18:Object = null;
            var _loc_19:Array = null;
            var _loc_20:Array = null;
            var _loc_21:int = 0;
            var _loc_22:String = null;
            var _loc_23:String = null;
            var _loc_24:Array = null;
            var _loc_25:int = 0;
            var _loc_26:Array = null;
            var _loc_27:int = 0;
            var _loc_28:String = null;
            var _loc_29:Array = null;
            var _loc_30:Array = null;
            if (param2 < list.length)
            {
                _loc_3 = param1.dataSource;
                _loc_4 = ConfigDictionary.data.item;
                _loc_5 = ItemObject.create(_loc_4[_loc_3.storeMsg.costtype]);
                _loc_6 = param1.getChildByName("fi") as FlashItem;
                _loc_3.itemMsg.count = _loc_3.storeMsg.containnum > 1 ? (_loc_3.containnum) : ("");
                _loc_6.data = _loc_3.itemMsg;
                _loc_7 = param1.getChildByName("txt_name") as Label;
                _loc_7.isHtml = true;
                _loc_7.text = "<font color=\'" + MColor.getqualitycolor(_loc_3.itemMsg.quality) + "\'>" + _loc_3.itemMsg.name + "</font>";
                _loc_8 = param1.getChildByName("btn_gm") as Button;
                _loc_8.disabled = false;
                _loc_8.clickHandler = new Handler(this.toGm, [{msg:_loc_3.storeMsg, item:_loc_3.itemMsg}]);
                _loc_9 = param1.getChildByName("money") as Label;
                _loc_10 = _loc_3.storeMsg.nowprice + _loc_5.name;
                if (_loc_3.storeMsg.needitems)
                {
                    _loc_17 = _loc_3.storeMsg.needitems.split("#");
                    _loc_18 = ItemObject.create(_loc_4[_loc_17[0]]);
                    _loc_10 = _loc_10 + (" + " + _loc_18.name + (_loc_17[1] > 1 ? ("*" + _loc_17[1]) : ("")));
                    _loc_9.color = ItemUilt.getAllCount(_loc_17[0]) >= _loc_17[1] ? ("53b436") : ("c72514");
                }
                _loc_9.text = _loc_10;
                _loc_11 = param1.getChildByName("list_condition") as List;
                _loc_12 = [];
                if (_loc_3.storeMsg.requestshow)
                {
                    _loc_19 = _loc_3.storeMsg.requestshow.split("#");
                    _loc_20 = _loc_3.storeMsg.request.split("&");
                    _loc_21 = 0;
                    while (_loc_21 < _loc_19.length)
                    {
                        
                        _loc_22 = "png.jifenshop.liang";
                        _loc_23 = "4ba0de";
                        if (this.checkCondition(_loc_20[_loc_21]))
                        {
                            _loc_23 = "95938D";
                            _loc_22 = "png.jifenshop.mie";
                            _loc_8.disabled = true;
                        }
                        _loc_12.push({txt_condition:"<font color=\'#" + _loc_23 + "\'>" + _loc_19[_loc_21] + "</font>", img_dian:_loc_22});
                        _loc_21++;
                    }
                }
                _loc_11.array = _loc_12;
                _loc_13 = param1.getChildByName("list_limit") as List;
                _loc_14 = [];
                _loc_15 = 0;
                _loc_16 = 0;
                if (_loc_3.storeMsg.limitbuy)
                {
                    _loc_24 = _loc_3.storeMsg.limitbuy.split("#");
                    _loc_16 = this.getBuyCount(_loc_3.storeMsg.id, "buyNum");
                    _loc_15 = 0;
                    if (_loc_24[0] == 3)
                    {
                        _loc_25 = int(ModelProxy.getValue("data", "unionInfo.unionLevel"));
                        _loc_26 = _loc_24[1].split("&");
                        _loc_27 = 0;
                        for each (_loc_28 in _loc_26)
                        {
                            
                            _loc_29 = _loc_28.split("|");
                            if (_loc_29[0] > _loc_25)
                            {
                                _loc_15 = _loc_27;
                                continue;
                            }
                            _loc_27 = _loc_29[1];
                        }
                    }
                    else
                    {
                        _loc_15 = _loc_24[1];
                    }
                    _loc_14.push({txt:_loc_15 + "个(" + (_loc_15 - _loc_16) + "/" + _loc_15 + ")", type:1 + _loc_24[0], color:_loc_15 == _loc_16 ? ("c72514") : ("53b436")});
                }
                if (_loc_3.storeMsg.alllimitbuy)
                {
                    _loc_30 = _loc_3.storeMsg.limitbuy.split("#");
                    _loc_16 = this.getBuyCount(_loc_3.storeMsg.id, "allBuyNum");
                    _loc_15 = _loc_30[1];
                    _loc_14.push({txt:_loc_15 + "个(" + (_loc_15 - _loc_16) + "/" + _loc_15 + ")", type:2 + _loc_30[0], color:_loc_15 == _loc_16 ? ("c72514") : ("53b436")});
                }
                _loc_13.array = _loc_14;
                _loc_13.renderHandler = new Handler(this.limitRender, [_loc_13]);
            }
            return;
        }// end function

        private function limitRender(param1:List, param2:Component, param3:int) : void
        {
            var _loc_4:Object = null;
            var _loc_5:Label = null;
            var _loc_6:String = null;
            if (param3 < param1.length)
            {
                _loc_4 = param1.array[param3];
                _loc_5 = param2.getChildByName("txt_limit") as Label;
                delete this.timeDic[_loc_5];
                _loc_6 = "";
                switch(int(_loc_4.type))
                {
                    case 1:
                    {
                        _loc_6 = "抢购倒计时：" + TimeDataFormatUtil.getLeftTimeStr2(_loc_4.txt, 2);
                        break;
                    }
                    case 2:
                    {
                        break;
                    }
                    case 3:
                    {
                        _loc_6 = "抢购活动已经结束";
                        break;
                    }
                    case 11:
                    {
                        _loc_6 = "每天限购" + _loc_4.txt;
                        break;
                    }
                    case 12:
                    {
                        _loc_6 = "仅限购" + _loc_4.txt;
                        break;
                    }
                    case 13:
                    {
                        _loc_6 = int(ModelProxy.getValue("data", "unionInfo.unionLevel")) + "级行会每天限购" + _loc_4.txt;
                        break;
                    }
                    case 21:
                    {
                        _loc_6 = "全服每天限购" + _loc_4.txt;
                        break;
                    }
                    case 22:
                    {
                        _loc_6 = "全服仅限购" + _loc_4.txt;
                        break;
                    }
                    case 23:
                    {
                        _loc_6 = int(ModelProxy.getValue("data", "unionInfo.unionLevel")) + "级行会全服每天限购" + _loc_4.txt;
                        break;
                    }
                    default:
                    {
                        break;
                    }
                }
                _loc_5.text = "<font color=\'#" + _loc_4.color + "\'>" + _loc_6 + "</font>";
            }
            return;
        }// end function

        public function getBuyCount(param1:int, param2:String) : int
        {
            var _loc_4:Object = null;
            var _loc_3:* = ModelProxy.getValue("data", "storeInfo");
            for each (_loc_4 in _loc_3)
            {
                
                if (_loc_4.storeId == param1)
                {
                    return _loc_4[param2];
                }
            }
            return 0;
        }// end function

        private function checkCondition(param1:String) : Boolean
        {
            var _loc_2:Array = null;
            var _loc_3:Object = null;
            var _loc_4:Object = null;
            var _loc_5:int = 0;
            _loc_2 = param1.split("#");
            switch(int(_loc_2[0]))
            {
                case 0:
                {
                    break;
                }
                case 1:
                {
                    _loc_3 = ModelProxy.getValue("data", "achievement");
                    _loc_4 = _loc_3["a" + _loc_2[1]];
                    if (_loc_4 && _loc_4[1] > 0)
                    {
                        return false;
                    }
                    break;
                }
                case 2:
                {
                    _loc_3 = ModelProxy.getValue("data", "achievement");
                    if (_loc_3.res >= _loc_2[1])
                    {
                        return false;
                    }
                    break;
                }
                case 3:
                {
                    _loc_5 = UserData.getUserData("level");
                    if (_loc_5 >= _loc_2[1])
                    {
                        return false;
                    }
                    break;
                }
                default:
                {
                    break;
                }
            }
            return true;
        }// end function

        private function toGm(param1:Object) : void
        {
            var _loc_2:* = UserData.getBagData("emptycount");
            if (_loc_2 == 0)
            {
                ModelProxy.change("movetips", "error", "背包空间不足，请先清理背包！");
                return;
            }
            var _loc_3:* = this.getMoney(param1.msg.costtype);
            if (_loc_3 < param1.msg.nowprice)
            {
                ModelProxy.change("movetips", "error", "元宝不足，无法购买该道具！");
                return;
            }
            DialogMgr.instance.open(AppDialog.SC_BUY, param1);
            return;
        }// end function

        private function getMoney(param1:int) : Number
        {
            var _loc_2:* = UserData.getBagData();
            var _loc_3:Number = 0;
            switch(param1)
            {
                case 1:
                {
                    _loc_3 = _loc_2.bgold;
                    break;
                }
                case 3:
                {
                    _loc_3 = _loc_2.money;
                    break;
                }
                case 2:
                {
                    _loc_3 = _loc_2.bonus;
                    break;
                }
                case 5:
                {
                    _loc_3 = _loc_2.contribution;
                    break;
                }
                case 6:
                {
                    _loc_3 = _loc_2.gold;
                    break;
                }
                case 9:
                {
                    _loc_3 = _loc_2.zuoqi;
                    break;
                }
                case 10:
                {
                    _loc_3 = _loc_2.yuyi;
                    break;
                }
                case 11:
                {
                    _loc_3 = _loc_2.shengwang;
                    break;
                }
                case 15:
                {
                    _loc_3 = _loc_2.jifen;
                    break;
                }
                default:
                {
                    break;
                }
            }
            return _loc_3;
        }// end function

        private function getImgType(param1:int) : String
        {
            var _loc_2:String = null;
            switch(param1)
            {
                case 3:
                {
                    _loc_2 = "png.common.cs2_yuanbao";
                    break;
                }
                case 6:
                {
                    _loc_2 = "png.common.cs2_jinbi";
                    break;
                }
                case 1:
                {
                    _loc_2 = "png.common.bgold";
                    break;
                }
                case 2:
                {
                    _loc_2 = "png.common.cs2_qian";
                    break;
                }
                default:
                {
                    _loc_2 = "png.common.jifen";
                    break;
                    break;
                }
            }
            return _loc_2;
        }// end function

    }
}
